using Admin2025.Application.Common;
using Admin2025.Application.Dtos;

namespace Admin2025.Application.Services;

public interface IAppUserService
{
    Task<IEnumerable<UserDto>> GetAllAsync(PageRequestDto pageRequestDto);
    Task<UserDto> GetByIdAsync(Guid id);
    Task CreateAsync(CreateUserDto dto);
    Task UpdateAsync(Guid id, UpdateUserDto dto);
    Task DeleteAsync(Guid id);
    Task EnableAsync(Guid id);
    Task<ApiResult> DisableAsync(Guid id);
    Task AssignRoleAsync(Guid userId, Guid roleId);
    Task RemoveRoleAsync(Guid userId, Guid roleId);
    Task UpdateAvatarAsync(Guid userId, string avatarUrl);
    Task UpdateNicknameAsync(Guid userId, string nickname);
    Task ChangePasswordAsync(Guid userId, string oldPwd, string newPwd);
}